<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Web Page Caching : CodeIgniter User Guide</title>

<style type='text/css' media='all'>
@import url('../userguide.css');
</style>
<link rel='stylesheet' type='text/css' media='all'
	href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv='pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

	<!-- START NAVIGATION -->
	<div id="nav">
		<div id="nav_inner">
			<script type="text/javascript">create_menu('../');</script>
		</div>
	</div>
	<div id="nav2">
		<a name="top"></a><a href="javascript:void(0);"
			onclick="myHeight.toggle();"><img
			src="../images/nav_toggle_darker.jpg" width="154" height="43"
			border="0" title="Toggle Table of Contents"
			alt="Toggle Table of Contents" /></a>
	</div>
	<div id="masthead">
		<table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
			<tr>
				<td><h1>CodeIgniter User Guide Version 2.1.3</h1></td>
				<td id="breadcrumb_right"><a href="../toc.html">Table of
						Contents Page</a></td>
			</tr>
		</table>
	</div>
	<!-- END NAVIGATION -->


	<!-- START BREADCRUMB -->
	<table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
		<tr>
			<td id="breadcrumb"><a href="http://codeigniter.com/">CodeIgniter
					Home</a> &nbsp;&#8250;&nbsp; <a href="../index.html">User Guide
					Home</a> &nbsp;&#8250;&nbsp; Page Caching</td>
			<td id="searchbox"><form method="get"
					action="http://www.google.com/search">
					<input type="hidden" name="as_sitesearch" id="as_sitesearch"
						value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input
						type="text" class="input" style="width: 200px;" name="q" id="q"
						size="31" maxlength="255" value="" />&nbsp;<input type="submit"
						class="submit" name="sa" value="Go" />
				</form></td>
		</tr>
	</table>
	<!-- END BREADCRUMB -->

	<br clear="all" />


	<!-- START CONTENT -->
	<div id="content">


		<h1>Web Page Caching</h1>

		<p>CodeIgniter lets you cache your pages in order to achieve
			maximum performance.</p>

		<p>Although CodeIgniter is quite fast, the amount of dynamic
			information you display in your pages will correlate directly to the
			server resources, memory, and processing cycles utilized, which
			affect your page load speeds. By caching your pages, since they are
			saved in their fully rendered state, you can achieve performance that
			nears that of static web pages.</p>


		<h2>How Does Caching Work?</h2>

		<p>
			Caching can be enabled on a per-page basis, and you can set the
			length of time that a page should remain cached before being
			refreshed. When a page is loaded for the first time, the cache file
			will be written to your
			<dfn>application/cache</dfn>
			folder. On subsequent page loads the cache file will be retrieved and
			sent to the requesting user's browser. If it has expired, it will be
			deleted and refreshed before being sent to the browser.
		</p>

		<p>Note: The Benchmark tag is not cached so you can still view
			your page load speed when caching is enabled.</p>

		<h2>Enabling Caching</h2>

		<p>To enable caching, put the following tag in any of your
			controller functions:</p>

		<code>
			$this->output->cache(
			<var>n</var>
			);
		</code>

		<p>
			Where
			<var>n</var>
			is the number of <strong>minutes</strong> you wish the page to remain
			cached between refreshes.
		</p>

		<p>The above tag can go anywhere within a function. It is not
			affected by the order that it appears, so place it wherever it seems
			most logical to you. Once the tag is in place, your pages will begin
			being cached.</p>

		<p class="important">
			<strong>Warning:</strong> Because of the way CodeIgniter stores
			content for output, caching will only work if you are generating
			display for your controller with a <a href="./views.html">view</a>.
		</p>
		<p class="important">
			<strong>Note:</strong> Before the cache files can be written you must
			set the file permissions on your
			<dfn>application/cache</dfn>
			folder such that it is writable.
		</p>

		<h2>Deleting Caches</h2>

		<p>If you no longer wish to cache a file you can remove the
			caching tag and it will no longer be refreshed when it expires. Note:
			Removing the tag will not delete the cache immediately. It will have
			to expire normally. If you need to remove it earlier you will need to
			manually delete it from your cache folder.</p>



	</div>
	<!-- END CONTENT -->


	<div id="footer">
		<p>
			Previous Topic:&nbsp;&nbsp;<a href="errors.html">Error Handling</a>
			&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; <a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
			<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
			Next Topic:&nbsp;&nbsp;<a href="profiling.html">Profiling Your
				Application</a>
		</p>
		<p>
			<a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp;
			Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a
				href="http://ellislab.com/">EllisLab, Inc.</a>
		</p>
	</div>

</body>
</html>